#include <sys\types.h>
#include <sys\stat.h>
#include <io.h> требуется только для объявления функции
int chmod(pathname,pmode);
char *pathname; path-имя существующего файла
int pmode; разрешенный доступ для файла
Описание.
Функция chmod изменяет разрешенный доступ для файла, заданного path-именем. Разрешенный доступ управляет чтением и записью файла. Константное выражение pmode состоит из одной или обеих манифестных констант S_IWRITE и S_IREAD, определенных в <sys\stat.h>.
Любое другое значение для pmode игнорируется. Когда заданы обе константы, они объединяются логическим оператором ИЛИ (:). Значения аргументов pmode представлены ниже.
ЗНАЧЕНИЕ СМЫСЛ ЗНАЧЕНИЯ S_IWRITE разрешена запись S_IREAD разрешено чтение S_IREAD : S_IWRITE разрешены чтение и запись
Если разрешение на запись не задано, файл доступен только для чтения. В MS DOS все файлы доступны для чтения, поэтому невозможно задание разрешения только на запись. Поэтому режимы S_IWRITE и S_IREAD : S_IWRITE являются эквивалентными.
Возвращаемое значение.
Функция chmod возвращает значение 0, если разрешенный доступ успешно изменен. Возвращаемое значение -1 свидетельствует об ошибке; в этом случае errno устанавливается в ENOENT, указывая, что определенный файл не может быть найден.
Пример:
#include <sys\types.h>
#include <sys.stat.h>
#include <io.h>
int result;
.
.
.
result=chmode("data",S_IREAD);
/* создать файл только для чтения */
if (result==-1)
perror("can't change file mode");